/**
 * 工具类
 */
module.exports = {

    /**
     * scene解码
     */
    scene_decode(e) {
        if (e === undefined)
            return {};
        let scene = decodeURIComponent(e),
            params = scene.split(','),
            data = {};
        for (let i in params) {
            var val = params[i].split(':');
            val.length > 0 && val[0] && (data[val[0]] = val[1] || null)
        }
        return data;
    },

    /**
     * 格式化日期格式 (用于兼容ios Date对象)
     */
    format_date(time) {
        // 将xxxx-xx-xx的时间格式，转换为 xxxx/xx/xx的格式
        return time.replace(/\-/g, "/");
    },

    /**
     * 对象转URL
     */
    urlEncode(data) {
        var _result = [];
        for (var key in data) {
            var value = data[key];
            if (value.constructor == Array) {
                value.forEach(_value => {
                    _result.push(key + "=" + _value);
                });
            } else {
                _result.push(key + '=' + value);
            }
        }
        return _result.join('&');
    },

    /**
     * 遍历对象
     */
    objForEach(obj, callback) {
        Object.keys(obj).forEach((key) => {
            callback(obj[key], key);
        });
    },

    /**
     * 是否在数组内
     */
    inArray(search, array) {
        for (var i in array) {
            if (array[i] == search) {
                return true;
            }
        }
        return false;
    },

    /**
     * 判断是否为正整数
     */
    isPositiveInteger(value) {
        return /(^[0-9]\d*$)/.test(value);
    },

    /**
     * 对Date的扩展，将 Date 转化为指定格式的String
     * 月(Y)、月(m)、日(d)、小时(H)、分(M)、秒(S) 可以用 1-2 个占位符，
     * 例子：
     * dateFormat('YYYY-mm-dd HH:MM:SS', new Date()) ==> 2020-01-01 08:00:00
     */
    dateFormat(fmt, date) {
        const opt = {
            "Y+": date.getFullYear().toString(), // 年
            "m+": (date.getMonth() + 1).toString(), // 月
            "d+": date.getDate().toString(), // 日
            "H+": date.getHours().toString(), // 时
            "M+": date.getMinutes().toString(), // 分
            "S+": date.getSeconds().toString() // 秒
            // 有其他格式化字符需求可以继续添加，必须转化成字符串
        };
        let ret;
        for (let k in opt) {
            ret = new RegExp("(" + k + ")").exec(fmt);
            if (ret) {
                fmt = fmt.replace(ret[1], (ret[1].length == 1) ? (opt[k]) : (opt[k].padStart(ret[1].length, "0")))
            }
            ;
        }
        ;
        return fmt;
    },

    strSplit(str, symbol) {
        return str.split(symbol);
    },

};